import logging
import os
import time

# 初始化一个文件输出的处理器
main_path = os.getcwd()
while True:
    if 'main.py' not in os.listdir(main_path):
        os.chdir(r'.\..')
        main_path = os.getcwd()
    else:
        break

class MyLogger():

    def __init__(self):
        # 初始化一个记录器
        self.logger = logging.getLogger()
        self.logger.setLevel(logging.DEBUG)

        # 初始化一个控制台输出的处理器
        sh = logging.StreamHandler()
        sh.setLevel(logging.INFO)

        log_path = os.path.join(main_path, f'log\{time.strftime("%Y-%m-%d")}.log')
        fh = logging.FileHandler(log_path, encoding='utf-8')
        fh.setLevel(logging.INFO)

        # 设置日志输出格式
        fm = logging.Formatter("%(asctime)s|%(levelname)s|%(filename)s|%(lineno)s|%(message)s")

        # 设置处理器的日志输出格式
        sh.setFormatter(fm)
        fh.setFormatter(fm)

        # 把处理器添加到记录器
        self.logger.addHandler(sh)
        self.logger.addHandler(fh)
logger = MyLogger().logger